//
//  FLRequest.h
//  Cat
//
//  Created by lushitong on 2018/12/1.
//  Copyright © 2018年 lushitong. All rights reserved.
//

#import <Foundation/Foundation.h>

typedef void(^FLSuccess)(NSDictionary *dict);
typedef void(^FLFailure)(NSInteger code, NSString *message);
typedef void (^FLProgress)(NSProgress *progress);

@interface FLRequest : NSObject


/// 取消指定URL的HTTP请求
+ (void)cancelRequestWithURL:(NSString *)URL;

/// 开启日志打印 (Debug级别)
+ (void)openLog;

/// 关闭日志打印,默认关闭
+ (void)closeLog;

/**
 打点的网络请求
 
 @param URL 请求的地址
 @param parameters  请求的参数
 @param success 请求成功的block
 @param failure 请求失败的block
 @return 返回的对象可取消请求,调用cancel方法
 */
+ (__kindof NSURLSessionTask *)GET:(NSString *)URL
						parameters:(id)parameters
						   success:(FLSuccess)success
						   failure:(FLFailure)failure;


/**
 打点的网络请求
 
 @param URL 请求的地址
 @param parameters  请求的参数
 @param success 请求成功的block
 @param failure 请求失败的block
 @return 返回的对象可取消请求,调用cancel方法
 */
+ (__kindof NSURLSessionTask *)POST:(NSString *)URL
						 parameters:(id)parameters
							success:(FLSuccess)success
							failure:(FLFailure)failure;

/**
 上传的URL
 
 @param URL 上传的URL地址
 @param progress 上传的进度
 @param success 上传成功
 @param failure 上传失败
 @return 返回的对象可取消请求,调用cancel方法
 */
+ (__kindof NSURLSessionTask *)uploadFileWithURL:(NSString *)URL
										andImage:(UIImage *)image
										progress:(FLProgress)progress
										 success:(FLSuccess)success
										 failure:(FLFailure)failure;



@end
